home *** CD-ROM | disk | FTP | other *** search
/ PC Gamer (Italian) 30 / PC Gamer IT CD 30 1-2.iso / MOTS / GAMEDATA / RESOURCE / JKMRES.GOO / cog_actor_tp_pnch.cog < prev    next >
Text File  |  1998-02-25  |  4KB  |  167 lines

  1. # Jedi Knight Cog Script
  2. #
  3. # ACTOR_tp_pnch.COG
  4. #
  5. # ACTOR SCRIPT - Tie Pilot
  6. #
  7. # [CYW, YB, CR, SRS]
  8. #
  9. # (C) 1997 LucasArts Entertainment Co. All Rights Reserved
  10.  
  11.  
  12. symbols
  13.  
  14. message     killed
  15. message     damaged
  16. message     skill
  17. message     timer
  18.  
  19. template    powerup=+DSTrifle                local
  20. ai          flee_ai=noweapon.ai              local
  21. ai          punch_ai=tp_punch.ai             local
  22.  
  23. int         oldAIMode                        local
  24. int         isFrozenNow=0                    local
  25. flex        extraFreezeTime=0.0              local
  26. int         newThing                         local
  27. int         victim                           local
  28. int         bin                              local
  29. int         senderref=-1                     local
  30. int         damage                           local
  31. vector      currentpos                       local
  32.  
  33. end
  34.  
  35. # ========================================================================================
  36.  
  37. code
  38.  
  39. damaged:
  40.    damage = GetParam(0);
  41.    if(GetParam(1) == 16)     // saber does 1.5 times damage
  42.    {
  43.       damage = (damage * 1.5);
  44.    }
  45.    ReturnEx(damage);
  46.    return;
  47.  
  48. # ........................................................................................
  49.  
  50. killed:
  51.    victim = GetSenderRef();
  52.  
  53.    // drop a rifle
  54.    if (GetActorWeapon (victim, 1) != -1)
  55.    {
  56.       AmputateJoint(victim, 3);
  57.  
  58.       newThing = CreateThing(powerup, victim);
  59.       SetLifeleft(newThing, 200.0);
  60.    }
  61.  
  62.    return;
  63.  
  64. # ........................................................................................
  65.  
  66. skill:
  67.    bin = GetParam(0);
  68.    if(bin == 24)                             // Force Pull
  69.    {
  70.       // he's a fighter, not a fleer... -srs
  71.  
  72.       senderref = GetSenderRef();
  73.             // If he hasn't been pulled yet...
  74.         if (GetActorWeapon (senderref, 1) != -1)
  75.         {
  76.             SetActorWeapon(senderref, 1, -1);
  77.  
  78.             newThing = CreateThing(powerup, GetSenderRef());
  79.             SetLifeleft(newThing, 30.0);
  80.  
  81.             AISetClass (senderref, punch_ai);
  82.             AISetMode(senderref, 0x4);
  83.  
  84.             ReturnEx(newThing);
  85.         }
  86.         else
  87.         {
  88.                 // Give the actor a shove towards the player.
  89.             currentpos = VectorSub(GetThingPos(GetLocalPlayerThing(), senderref));
  90.             currentpos = VectorScale(VectorNorm(currentPos), 250);
  91.             ApplyForce(senderref, currentpos);
  92.  
  93.             ReturnEx(-1);
  94.         }
  95.  
  96.       //AIFlee(senderref, GetLocalPlayerThing());
  97.  
  98.       Return;
  99.    }
  100.    else
  101.    if(bin == 31)                             // Force Grip
  102.    {
  103.       ReturnEx(10);                          // return base damage that is taken by this actor.
  104.       Return;
  105.    }
  106.    else
  107.    if(bin == 34)                             // Deadly Sight
  108.    {
  109.       ReturnEx(10);                          // return base damage that is taken by this actor.
  110.       Return;
  111.    }
  112. //    else
  113. //    if(bin == 1035)                                    // Carbonite
  114. //    {
  115. //        if (!isFrozenNow)
  116. //        {
  117. //            senderref = GetSenderRef();
  118. //            victim = GetParam(2);
  119. //
  120. //            isFrozenNow = 1;
  121. //         extraFreezeTime = 0.0;
  122. //
  123. //            oldAIMode =    AIGetMode(victim);
  124. //            AISetMode(victim, 0x2000);                // Disable the actor's AI.
  125. //            AISetMoveThing(victim, victim);        // Set the thing as it's own destination so it stops moving.
  126. //
  127. //            SetTimerEx(GetParam(1), 1035, victim, 0);    // Make an appointment for "Unthawing"
  128. //        }
  129. //        else
  130. //        {
  131. //            extraFreezeTime = extraFreezeTime + GetParam(1);
  132. //        }
  133. //
  134. //        ReturnEx(0);
  135. //        return;
  136. //    }
  137.  
  138.    ReturnEx(-1);
  139.    return;
  140.  
  141. # ........................................................................................
  142.  
  143. timer:
  144.     senderref = GetSenderRef();
  145.  
  146.     if(GetSenderId() == 1035)    // Thaw out
  147.     {
  148.         victim =    GetParam(0);
  149.  
  150.         if (!extraFreezeTime)
  151.         {
  152.             AIClearMode(victim, 0xFFFFFFFF);
  153.             AISetMode(victim, oldAIMode);            // Reinstate the actor's AI.
  154.             isFrozenNow = 0;
  155.         }
  156.         else
  157.         {
  158.             // We've been hit more than once, so we need to extend the freeze time.
  159.             SetTimerEx(extraFreezeTime, 1035, victim, 0);    // Make an appointment for "Unthawing"
  160.             extraFreezeTime = 0.0;
  161.         }
  162.     }
  163.     Return;
  164.     
  165. end
  166.  
  167.